package com.cxso.example.request.insure;


import com.cxso.example.enums.open.InsureTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

@Getter
@Setter
public class InsureOrderRequest {

    @Schema(description = "被保险人", example = "110")
    @NotBlank(message = "被保险人不能为空")
    private String insurantName;

    @Schema(description = "被保险人的证件号", example = "110")
    private String cardNum;

    @Schema(description = "发票抬头或投保人", example = "110")
    @NotBlank(message = "发票抬头或投保人不能为空")
    private String applicantUser;

    @Schema(description = "投保人纳税识别码", example = "110")
    @NotBlank(message = "投保人纳税识别码不能为空")
    private String applicantNum;

    @Schema(description = "保险公司(请参照字典数据)", example = "110")
    @NotBlank(message = "保险公司不能为空")
    private String insuranceName;

    @Schema(description = "商户订单唯一号", example = "110")
    private String applyOrder;

    @Schema(description = "发票号", example = "110")
    private String invoiceNo;

    @Schema(description = "合同号", example = "110")
    private String contractNo;

    @Schema(description = "信用证号", example = "110")
    private String creditNo;

    @Schema(description = "提单号", example = "110")
    private String yunNo;

    @Schema(description = "货币类型(请参照字典数据)", example = "110")
    @NotBlank(message = "货币类型不能为空")
    private String moneyType;

    @Schema(description = "保险金额", example = "110")
    @NotNull(message = "保险金额不能为空")
    private BigDecimal money;

    @Schema(description = "货物类型大类(请参照字典数据)", example = "110")
    @NotBlank(message = "货物类型大类不能为空")
    private String freightType;

    @Schema(description = "包装方式大类(请参照字典数据),平安，才必填", example = "110")
    private String packType;

    @Schema(description = "标记（要是传值，平安，长度不能超过50个字符）", example = "110")
    private String marks;

    @Schema(description = "货物物品（平安，长度不能超过150个字符）", example = "110")
    @NotBlank(message = "货物物品不能为空")
    private String goodName;

    @Schema(description = "数量及包装（人保，长度不能超过250个字符；平安，长度不能超过150个字符）", example = "110")
    @NotBlank(message = "数量及包装不能为空")
    private String packages;

    @Schema(description = "运输方式大类(请参照字典数据)", example = "110")
    @NotBlank(message = "运输方式大类不能为空")
    private String transportType;

    @Schema(description = "运输工具", example = "110")
    @NotBlank(message = "运输工具不能为空")
    private String toolNo;

    @Schema(description = "起运地国家(请参照字典数据)", example = "110")
    @NotBlank(message = "起运地国家不能为空")
    private String fromCountry;

    @Schema(description = "起运地省(请参照字典数据)", example = "110")
    @NotBlank(message = "起运地省不能为空")
    private String fromProvince;

    @Schema(description = "起运地城市(请参照字典数据)", example = "110")
    @NotBlank(message = "起运地城市不能为空")
    private String fromCity;

    @Schema(description = "起运地除国家省市外部分", example = "110")
    private String fromInfo;

    @Schema(description = "目的地国家(请参照字典数据)", example = "110")
    @NotBlank(message = "目的地国家不能为空")
    private String toContry;

    @Schema(description = "目的地省(请参照字典数据)", example = "110")
    @NotBlank(message = "目的地省不能为空")
    private String toProvince;

    @Schema(description = "目的地城市(请参照字典数据)", example = "110")
    @NotBlank(message = "目的地城市不能为空")
    private String toCity;

    @Schema(description = "目的地除国家省市外部分", example = "110")
    private String toInfo;

    @Schema(description = "经转地", example = "110")
    private String sendTurn;

    @Schema(description = "赔付地点", example = "110")
    @NotBlank(message = "赔付地点不能为空")
    private String payAddress;

    @Schema(description = "起运日期", example = "2019-09-09")
    @NotNull(message = "起运日期")
    private Date sendDate;

    @Schema(description = "险种大类(请参照字典数据)", example = "110")
    @NotBlank(message = "险种大类不能为空")
    private String mainCondiTions;

    @Schema(description = "特别约定", example = "110")
    private String condiTionsDes;

    @Schema(description = "备注", example = "110")
    private String remark;

    @Schema(description = "保险类型", example = "MEITAN")
    @NotNull(message = "保险类型不能为空")
    private InsureTypeEnum insureTypeEnum;

    @Schema(description = "提交用户渠道唯一码", example = "110")
    private String parentID;

    @Schema(description = "对接系统说明(订单唯一编号)", example = "{\"plateStatementNo\":\"j4atz52kplofdn8sndlqp24lh0iqx9mr\"}")
    private String xtInfo;

}
